In data packet communications over time-varying wireless communication channels, rate adaptation may be used to optimize data transmission. Rate adaptation is a technique that involves dynamically selecting a data rate for each packet of data to be transmitted based on a latest estimate of channel condition. Different data rates are associated with different modulation and/or channel coding schemes, also referred to herein as “MCS levels”. High data rates are associated with higher order modulation and/or weaker channel coding schemes that provide less protection, such as redundancy, against channel error for the data packet being transmitted. By contrast, low data rates are associated with lower order modulation and/or stronger channel coding schemes that provide more protection against channel error for the data packet being transmitted.
The objective of rate adaptation is to select a data rate or an associated MCS level that would maximize data throughput without compromising data transmission quality. In good channel conditions, data transmission quality is less likely to be affected, thus a weaker MCS level may be selected to achieve a higher data rate. By contrast, in poor channel conditions, data transmission quality is more likely to be affected and a stronger MCS level should be selected to provide greater protection for the data packet being transmitted.
An MCS level (or data rate) is typically selected from a lookup table of MCS levels (or data rates) associated with channel conditions thresholds. In the lookup table, high or weak MCS levels and high channel condition thresholds are associated with high data rates. Similarly, low or strong MCS levels and low channel condition thresholds are associated with low data rates. The channel conditions between a transmitter and a receiver are estimated at the receiver using any channel quality metric, such as carrier to interference (C/I) ratio, signal to interference plus noise ratio (SINR) or Shannon capacity. The estimate of channel condition is subsequently relayed, via a feed back channel, to the transmitter. The transmitter uses the estimate of channel condition and lookup table to select an MCS level at which the transmitter is to transmit data packets to the receiver. In order to maximize data throughput, the MCS level selected should be the MCS level associated with the highest channel condition threshold which the estimate of channel condition satisfies. A channel condition threshold is satisfied when the estimate of channel condition is greater or equal to the channel condition threshold. The selected MCS level is communicated to the receiver by the transmitter before any data packet is transmitted. Alternately, the receiver selects the MCS level and relays, via the feedback channel, the selected MCS level to the transmitter.
The choice of channel condition thresholds in the lookup table can significantly affect link performance criteria, such as average throughput, packet and bit error rates and average number of retransmissions with ARQ, HARQ or similar error correction schemes. Optimal choice of channel condition thresholds are based on a complicated function of several factors such as metric estimation accuracy, Doppler frequency of the channel, feedback delay, fading statistics and SINR at the receiver, channel profile, choice of MCS levels, and transmitter and receiver design. Most of these factors are, however, time varying which would, in turn, cause the optimal channel condition thresholds to be time varying. Thus, it would be more desirable for a lookup table having channel condition thresholds that are adaptive as time varies (i.e., adaptive lookup table) than a lookup table having fixed channel condition thresholds (i.e., fixed lookup table). One way of implementing an adaptive lookup table involves measuring the above mentioned factors in real-time, calculating a set of optimized channel condition thresholds based on those factors and updating the adaptive lookup table with the set of optimized channel condition thresholds. However, due to the large number of factors affecting the optimal channel condition thresholds, it would be impractical to implement an adaptive lookup table in this manner. Accordingly, there exists a need for adaptively selecting channel condition thresholds in real-time without measuring all the factors that affect optimal channel condition thresholds.